package com.example.common.lang;

import lombok.Data;

import java.io.Serializable;

/**
 * 异步统一返回结果封装，一般来说结果包括几个元素：
 * 1.是否成功状态码，可以code表示(0表示成功，-1表示失败)
 * 2.结果消息
 * 3.结果数据
 *
 * @Author 林必昭
 * @Date 2019/7/16 10:12
 */

@Data
public class Result implements Serializable {

    private Integer code;
    private Integer status;
    private String msg;
    private Object data;
    private String action;  //返回成功的跳转地址

    public static Result succ(Object data) {
        return succ("操作成功", data);
    }

    public static Result succ(String mess, Object data) {
        return succ(mess, data, null);
    }

    public static Result succ(String mess, Object data, String action) {
        Result m = new Result();
        m.setCode(0);
        m.setStatus(0);
        m.setData(data);
        m.setMsg(mess);
        m.setAction(action);

        return m;
    }

    public static Result fail(String mess) {
        return fail(mess, null);
    }

    public static Result fail(String mess, Object data) {
        Result m = new Result();
        m.setCode(-1);
        m.setStatus(-1);
        m.setData(data);
        m.setMsg(mess);

        return m;
    }
 }
